public class ThreadDemo10 {
    //懒汉模式(多线程模式进阶版)
    public class Singleton {
        // 私有构造器
        private Singleton() {
        }
        // 私有静态常量，保存实例
        //加上volatile 确保其他线程访问
        private volatile static Singleton instance = null;

        // 公有静态方法，返回实例
        //加个锁就是保证线程安全了
        public Singleton getInstance() {
            //先判断如果没有创建实例时 才创建实例, 并非是启动就是创建实例
            if(instance==null) {
                //当有线程获取锁时,其他线程需要等待锁的释放,其他线程成功获取锁后,
                // 还需要在进行判断实例是否已创建好
                synchronized(Singleton.class){
                    if(instance==null){
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }
    public static void main(String[] args) {

    }
}

